import {extendDate2} from '../../utils/order/order'
import {confirmGetGoods2} from '../../utils/order/order'

Component({
  /**
   * 组件的属性列表,
   * 
   */
  properties: {
      orderDetail:{
           type:Object,
           value:'default value',
           showAfterSale:false
      }
  },
  

  /**
   * 组件的初始数据
   */
  data: {
    allOrder: [
       
    ],

    flag:false,
    show:false,
    goodId:""
  },

  /**
   * 组件的方法列表
   */
  methods: {

    // 去售后页面
    // 由于组件内的数据有限
    // 去售后页面需要数据，这些数据存在于父组件中，所以要由父组件跳转
    // 所以要触发父组件的某个方法
    toAfterSale(e){
      this.setData({
        showAfterSale:false
      })
         console.log(e.currentTarget.dataset.idx);
      
         let afterSaleType = e.currentTarget.dataset.idx;
         this.triggerEvent("toAfterSale",afterSaleType);
    },
    
    //跳转到详情页面
    toDetail(e){
      let id = e.currentTarget.dataset.id;
      console.log(id);
      wx.navigateTo({
        url: '/pages/goodsDetails/goodsDetails?id='+id,
      })
    },





    //关闭弹窗
    //点击空白关闭弹窗
    onClose(){
      this.setData({ show: false });
    },
    //跳转到评价页面
    toEvaluatePage(e){
        let  idx = e.currentTarget.dataset.idx;
        let good = this.data.selectItem;
        let details = good.details
        let detail = details[idx];
        detail = JSON.stringify(detail);
        wx.navigateTo({
          url:`/pages/evaluate/evaluate?good=${detail}&merchantId=${good.merchantId}`,
        })

        this.onClose();
        
    },
    // 去评价，打开弹窗
    toEvaluate(e){
          let goods = e.currentTarget.dataset.goods;
          console.log(goods);
          this.setData({
             show:true,
             selectItem:goods
          })
          console.log("去评价");
    },
    
    exextendDate1(){
      let id = this.data.orderDetail.id;
      let version = this.data.orderDetail.version;
      console.log(id,version,"-------");
      extendDate2(id,version);
    },



    
    // 确认收货
    confirmGetGoods1(e){
        console.log("确认收货");
        console.log(e.currentTarget.dataset);
        let dataset = e.currentTarget.dataset;
        let id = dataset.id;
        let version=dataset.version;
        confirmGetGoods2(id,version);
    },



    //这个方法用来过滤之前的specName 让这个specname 
    //变成数组的形式
    getNewAllOrder(allOrder){
      allOrder.forEach(item => {
        let details = item.details;
        //遍历detail
        details.forEach(ite => {
          //获取specName
          let specName = ite.specName;
          specName = JSON.parse(specName);
          //遍历specName
          let newSpecName = [];
          for (let key in specName) {
            // console.log(specName[key]);
            newSpecName.push(specName[key])
          }
          // 把new specName 放回detail中
          ite.specName = newSpecName;
        })
        //detail 已经被改变了把details 放回 item 中
        item.details = details;
      })


      return allOrder;
    },

    toStore(e){
        console.log(e.currentTarget.dataset.id);
        let merchantId = e.currentTarget.dataset.id;
        wx.navigateTo({
          url: '/pages/shop/shop?id='+merchantId,
        })
    },

    afterSale(e){
        console.log("申请售后")
        console.log(e.currentTarget.dataset.id);
        let id = e.currentTarget.dataset.id;
        //点击商品的申请售后按钮之后保存对应的商品的id
        this.setData({
           goodId:id
        })
        this.setData({
          showAfterSale:true
        })
       
    },

  onClose() {
    this.setData({ showAfterSale: false });
  },


  },



/**
 * 组件生命周期的特点
 * 1 进入的时候会触发几个生命周期
 * 2 离开这个页面的时候会触发 detache 生命周期
 * 3 从当前页面跳转到其他页面不会触发生命周期
 * 4 再次回来的时候也不会触发生命周期
 * ***/ 
   lifetimes: {
      created() {
        console.log("created在组件实例刚刚被创建时执行")
      },
      attached() {
        // console.log("attached,orderdetail 组件=============",this.data.orderDetail);
        // this.getOrder();
        // 接收到的参数在这个生命周期里面接收不到，在ready 生命周期里面可以接收到。
        
        
      },
      ready() {
        console.log("ready在组件在视图层布局完成后执行")
        console.log(this.data.orderDetail,"商品详情")
      },
      moved() {
        console.log("moved在组件实例被移动到节点树另一个位置时执行")
      },
      detached() {
        console.log("detached在组件实例被从页面节点树移除时执行")
      },
      error() {
        console.log("error每当组件方法抛出错误时执行")
      }
  },
})
